/*
 * Copyright (c) 2011-2014, fortiss GmbH.
 * Licensed under the Apache License, Version 2.0.
 *
 * Use, modification and distribution are subject to the terms specified
 * in the accompanying license file LICENSE.txt located at the root directory
 * of this software distribution. A copy is available at
 * http://chromosome.fortiss.org/.
 *
 * This file is part of CHROMOSOME.
 *
 * $Id: dictionaryData.h 7836 2014-03-14 12:20:24Z wiesmueller $
 */

/**
 * \file
 *         Topic registry extension.
 *         Project specific topic data structures are defined here.
 *
 * \author
 *         This file has been generated by the CHROMOSOME Modeling Tool (XMT)
 *         (fortiss GmbH).
 */

#ifndef CALCULATOR_DICTIONARY_TOPICDATA_H
#define CALCULATOR_DICTIONARY_TOPICDATA_H

/******************************************************************************/
/***   Includes                                                             ***/
/******************************************************************************/
#include <stdint.h>

/******************************************************************************/
/***   Defines                                                              ***/
/******************************************************************************/
#define CALCULATOR_TOPIC_CALCULATORREQUEST_OPERATION_ADD 0 ///< Value for enum 'calculator_topic_calculatorRequest_t.operation'.
#define CALCULATOR_TOPIC_CALCULATORREQUEST_OPERATION_SUBTRACT 1 ///< Value for enum 'calculator_topic_calculatorRequest_t.operation'.
#define CALCULATOR_TOPIC_CALCULATORREQUEST_OPERATION_MULTIPLY 2 ///< Value for enum 'calculator_topic_calculatorRequest_t.operation'.
#define CALCULATOR_TOPIC_CALCULATORREQUEST_OPERATION_DIVIDE 3 ///< Value for enum 'calculator_topic_calculatorRequest_t.operation'.

/******************************************************************************/
/***   Type definitions                                                     ***/
/******************************************************************************/
/**
 * \typedef calculator_topic_calculatorResponse_t
 *
 * \brief Data type for topic 'calculatorResponse' (identifier: CALCULATOR_TOPIC_CALCULATORRESPONSE).
 */
#pragma pack(push, 1)
typedef struct
{
    double result;
} calculator_topic_calculatorResponse_t;
#pragma pack(pop)

/**
 * \typedef calculator_topic_calculatorRequest_t
 *
 * \brief Data type for topic 'calculatorRequest' (identifier: CALCULATOR_TOPIC_CALCULATORREQUEST).
 */
#pragma pack(push, 1)
typedef struct
{
    int32_t operand1;
    int32_t operand2;
    uint8_t operation;
} calculator_topic_calculatorRequest_t;
#pragma pack(pop)
#endif // #ifndef CALCULATOR_DICTIONARY_TOPICDATA_H
